package com.niguang.work.api.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.niguang.work.api.enums.ApplyNodeStepEnum;
import com.niguang.work.api.enums.DangerLevelEnum;
import com.niguang.work.api.enums.RoleApplyFlagEnum;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.Date;

/**
 * 整改详情--审核列表
 */
@Data
public class ReformDetailListVo {

    private String id;

    private String contentId;

    /**
     * 审核人ID
     */
    private String applyUserId;

    /**
     * 审核人
     */
    private String applyUserName;

    /**
     * 电话号码
     */
    private String applyUserPhone;

    /**
     * 审核人工作职位
     */
    private String applyJobPosition;

    /**
     * 隐患级别 1-一般 2-较大 3-重大 4-特大
     */
    private Integer dangerLevel;

    private String dangerLevelText;

    /**
     * 审核状态 1-无需整改 2-待整改 3-通过 4-不通过
     */
    private Integer applyFlag;

    private String appLyFlagText;

    /**
     * 指派人id
     */
    private String appointUserId;

    /**
     * 指派人姓名
     */
    private String appointUserName;

    /**
     * 指派人电话号码
     */
    private String appointUserPhone;

    /**
     * 指派人工作职位
     */
    private String appointJobPosition;

    /**
     * 整改截至期限
     */
    private String reformTerm;

    /**
     * 剩余天数
     */
    private Integer surpluDays;

    /**
     * 隐患图片
     */
    private String dangerPic;

    private String[] dangerPicArray;

    /**
     * 隐患描述
     */
    private String dangerDesc;

    /**
     * 是否处理 0-未处理 1-已处理
     */
    private Integer dealFlag;

    /**
     * 操作节点步骤 1-审核分发 2-整改处理 3-复查处理 4-整改驳回 5-转发
     */
    private Integer nodeStep;

    private String nodeStepText;

    private Integer validFlag;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    public String[] getDangerPicArray() {
        if (StringUtils.isNotBlank(dangerPic)) {
            return dangerPic.split(";");
        }
        return new String[]{};
    }

    public String getDangerLevelText() {
        return DangerLevelEnum.getName(dangerLevel);
    }

    public String getNodeStepText() {
        return ApplyNodeStepEnum.getName(nodeStep);
    }

    public String getApplyFlagText() {
        return RoleApplyFlagEnum.getName(applyFlag);
    }

}
